100 CALL CLEAR :: CALL SCREEN(2) :: CALL MAGNIFY(3) :: RANDOMIZE :: CALL DELSPRITE(ALL)
110 PUNKTE=0 :: LEBEN=3 :: ZEIT=250 :: SOLL=10000
115 FOR I=1 TO 11 :: CALL COLOR(I,16,1) :: NEXT I :: CALL COLOR(12,16,16,13,15,15)
120 CALL GHOSTBUSTER :: CALL CHAR(124,"C060361931184E232102040201000000000000000000001088C06030301E0F23")
130 CALL CHAR(112,"007080700F003040300F000C100C0300000E010EF0000C020CF000300830C000")
140 CALL CHAR(116,"000000000000000F1F207F7F7F7F7F7F00000000000000FFFF0DFBFBFBFAFCF8")
150 CALL CHAR(92,"00604400301F0F07E7074F1830042640889A3878F0F4F8FFFCC0642000084E06")
160 CALL CHAR(88,"0203070B0F05A77FFF8F1F1F1F3F37220000804AC48E98F0C0E0F0F8FCFC7824")
170 CALL CHAR(98,"FFFFC1C1C1C1C1C1",99,"FFFF838383838383",100,"C7C5C1C1C1C1FFFF",101,"E3A383838383FFFF")
180 CALL CHAR(102,"7FBFC0DFDFD9DBDB",103,"FEFD03FBFB3B7B7B",104,"DFDFDFDFDFD1DDDF",105,"FBFBFBFBFBFBFBFB")
190 CALL CHAR(106,"D0D7D7D7D7D7D7FF",107,"0BFBFBFBFBFBFBFF",33,"1818083818181C34")
200 DISPLAY AT(24,1)SIZE(10):"$";PUNKTE :: DISPLAY AT(24,14)SIZE(3):"!!!" :: DISPLAY AT(24,23)SIZE(6):ZEIT
210 K=INT(RND*2+1) :: CALL CLEAR :: GOSUB 28000 :: ON K GOSUB 29000,29070
220 CALL SPRITE(#1,88,16,INT(RND*50)+50,INT(RND*50)+100,0,10) :: FOR I=0 TO 24 STEP 3 :: CALL SOUND(-500,-5,I)
230 CALL SOUND(-350,-5,I+3) :: CALL SOUND(-200,-5,I+6) :: NEXT I
240 CALL SPRITE(#5,140,13,155,250,0,-10) :: FOR I=1 TO 10 :: CALL PATTERN(#5,128) :: FOR I1=1 TO 10 :: NEXT I1 :: CALL PATTERN(#5,140)
245 FOR I1=1 TO 10 :: NEXT I1 :: NEXT I
250 CALL JOYST(1,A,B) :: CALL POSITION(#5,Y,X) :: CALL KEY(1,N,S) :: IF N=18 THEN 400
260 IF Y>155 AND B=-4 THEN CALL MOTION(#5,0,A*2) :: GOTO 280
270 IF Y<150 AND B=4 THEN CALL MOTION(#5,0,A*2)ELSE CALL MOTION(#5,-B*2,A*2)
280 IF INT(RND*5+1)=4 THEN CALL MOTION(#1,80,10) :: CALL MOTION(#1,0,10)
290 IF INT(RND*8+1)=4 THEN CALL MOTION(#1,0,INT(RND*-40+20))
295 ZEIT=ZEIT-1 :: IF ZEIT<=0 THEN 4200
300 CALL POSITION(#1,Y,X) :: CALL COINC(#1,#5,10,C) :: IF Y>160 OR C=-1 THEN 4000 ELSE 250
310 FOR I=1 TO 100 :: NEXT I :: CALL DELSPRITE(#24,#25,#26,#27,#28,#2) :: GOTO 250
400 CALL MOTION(#5,0,0) :: CALL PATTERN(#5,128) :: CALL STREAM :: FOR I=1 TO 10 :: CALL SOUND(-100,-6,I,I*110,I*2) :: NEXT I
410 ZEIT=ZEIT-1 :: I1=0 :: FOR I=18 TO 23 :: CALL COINC(#1,#I,10,C) :: IF C THEN I1=I1+1 :: CALL COLOR(#1,12) :: CALL MOTION(#1,0,0)
415 NEXT I
420 CALL DELSPRITE(#18,#19,#20,#21,#22,#23) :: FOR I=10 TO 1 STEP-1 :: CALL SOUND(-100,-6,I,I*110,I*2) :: NEXT I :: CALL PATTERN(#5,140)
430 GOSUB 28000 :: IF I1 THEN 1000 ELSE 250
1000 CALL PATTERN(#5,140) :: PUNKTE=PUNKTE+INT(RND*3+1)*100 :: Z=30 :: GOSUB 28000
1010 CALL JOYST(1,A,B) :: CALL MOTION(#5,0,A*2) :: CALL KEY(1,N,S) :: IF N=18 THEN 1100
1020 Z=Z-1 :: IF Z<=0 THEN 4000 ELSE 1010
1100 CALL POSITION(#5,Y,X) :: CALL SPRITE(#2,116,11,Y,X) :: FOR I=1 TO 7 :: CALL JOYST(1,A,B) :: CALL MOTION(#5,0,A*2) :: NEXT I
1110 CALL MOTION(#5,0,0) :: CALL GHOSTTRAP :: FOR I=0 TO 8 STEP 2.5 :: CALL SOUND(-100,1000,I,990,I,1010,I) :: NEXT I
1120 CALL COINC(#2,#5,12,C) :: IF C THEN CALL DELSPRITE(#2,#24,#25,#26,#27,#28) :: CALL COLOR(#1,16) :: GOTO 4000
1130 MOT,C1=0 :: FOR I1=1 TO 2 :: FOR I=24 TO 28 :: CALL COINC(#1,#I,12,C) :: IF C THEN C1=C1+1 :: MOT=15
1140 NEXT I :: NEXT I1 :: CALL MOTION(#1,MOT,0,#25,20,0,#26,15,0,#27,10,0,#28,5,0) :: FOR I=1 TO 110 :: NEXT I :: CALL DELSPRITE(#25,#26,#27,#28)
1150 CALL DELSPRITE(#24) :: IF C1=0 THEN 4000
1155 ZEIT=ZEIT-1 :: CALL PATTERN(#5,132)
1160 CALL DELSPRITE(#1) :: FOR I=1 TO 3 :: CALL SOUND(-250,I*110,2) :: CALL SOUND(-250,I*110+220,2) :: NEXT I
1170 PUNKTE=PUNKTE+INT(RND*2+1)*100+500 :: GOSUB 28000
1180 CALL DELSPRITE(#2) :: CALL MOTION(#5,0,-10)
1190 CALL PATTERN(#5,128) :: FOR I=1 TO 10 :: NEXT I :: CALL PATTERN(#5,140) :: FOR I=1 TO 8 :: NEXT I
1200 CALL POSITION(#5,Y,X) :: IF X<10 THEN CALL DELSPRITE(#5) :: GOTO 210 ELSE 1190
4000 CALL MOTION(#5,0,0) :: CALL POSITION(#5,Y,X) :: CALL COLOR(#1,16) :: CALL MOTION(#1,0,20) :: CALL PATTERN(#5,132)
4010 CALL POSITION(#1,Y1,X1) :: IF X1>X-10 AND X1<X+10 THEN CALL MOTION(#1,15,0) :: GOTO 4020 ELSE 4010
4020 CALL POSITION(#1,Y1,X1) :: IF Y1>160 THEN 4030 ELSE 4020
4030 CALL DELSPRITE(#1) :: DISPLAY AT(22,1):"        S L I M E D         " :: CALL SPRITE(#4,92,4,Y,X) :: CALL SOUND(-100,-6,0)
4040 FOR I=1 TO 500 :: NEXT I :: LEBEN=LEBEN-1 :: IF LEBEN<=0 THEN 26000
4050 CALL CLEAR :: CALL DELSPRITE(ALL) :: GOTO 210
4200 IF PUNKTE<SOLL THEN 26000 ELSE CALL DELSPRITE(ALL)
4210 CALL MARSHMALLOW :: CALL CLEAR :: CALL COLOR(13,5,5,2,2,5) :: CALL CHAR(40,"616161616161311F",41,"6161616161616161")
4220 CALL CHAR(45,"001F316161616161",42,"00FBFBFB00DFDFDF",43,"FF818181818181FF")
4230 CALL CHAR(112,"00000000000000010103050501010100000000000000008080D0A08040404000")
4240 CALL CHAR(116,"0000000000000001010B050102020200000000000000008080C0A0A080808000")
4250 CALL CHAR(120,"000000000000000000000000677F080600000000000000000000000020E00000") :: CALL MAGNIFY(4)
4260 DISPLAY AT(1,1):"  *)*)*)*)*)*)*)*)*)*)*)*     *)*)*)*)*)*)*)*)*)*)*)*     *)*)*)*)*)*)*)*)*)*)*)*     *(*(*(*(*(*(*(*(*(*(*(*"
4270 DISPLAY AT(5,1):" +++++++++++++++++++++++++    ***********************     ***********************    +++++++++++++++++++++++++ "
4280 DISPLAY AT(9,1):"  *-*-*-*-*-*-*-*-*-*-*-*     *)*)*)*)*)*)*)*)*)*)*)*     *)*)*)*)*)*)*)*)*)*)*)*     *)*)*)*)*)*)*)*)*)*)*)*"
4290 DISPLAY AT(13,1):"  *)*)*)*)*)*)*)*)*)*)*)*     *)*)*)*)*)*)*)*)*)*)*)*     *(*(*(*(*(*(*(*(*(*(*(*    +++++++++++++++++++++++++"
4300 DISPLAY AT(16,1):"  ***********************     *********+++++*********     ********+     +********     ********+     +********"
4310 DISPLAY AT(20,1):"  ********+     +********" :: CALL HCHAR(21,1,128,96) :: GOSUB 28000
4320 CALL SPRITE(#1,124,16,75,100,#2,128,16,107,84,#3,132,16,107,116,#4,136,16,139,84,#5,140,16,139,116)
4330 CALL SPRITE(#10,112,3,155,230) :: CALL SOUND(400,294,4) :: CALL SOUND(500,330,2) :: CALL SOUND(750,262,0)
4340 CALL MOTION(#1,0,2,#2,0,2,#3,0,2,#4,0,2,#5,0,2)
4350 CALL PATTERN(#10,112) :: CALL SOUND(10,-5,10)
4360 CALL JOYST(1,A,B) :: CALL POSITION(#10,Y,X)
4370 IF Y<138 AND B=4 THEN CALL MOTION(#10,0,A*2) :: GOTO 4390
4380 IF Y>150 AND B=-4 THEN CALL MOTION(#10,0,A*2)ELSE CALL MOTION(#10,-B*2,A*2) :: CALL SOUND(10,-5,10)
4390 CALL PATTERN(#10,116) :: CALL COINC(#4,#10,10,C1) :: CALL COINC(#5,#10,10,C2) :: IF C1=-1 OR C2=-1 THEN 4500
4400 CALL POSITION(#1,Y,X) :: IF X<100 OR X>115 THEN 4430
4410 CALL COINC(#10,128,110,14,C) :: IF C=-1 THEN 5000
4420 GOTO 4350
4430 CALL MOTION(#1,0,0,#2,0,0,#3,0,0,#4,0,0,#5,0,0)
4440 CALL LOCATE(#1,Y,X,#2,Y+32,X-16,#3,Y+32,X+16,#4,Y+64,X-16,#5,Y+64,X+16)
4450 IF X<110 THEN CALL MOTION(#1,0,2,#2,0,2,#3,0,2,#4,0,2,#5,0,2) :: GOTO 4350
4460 CALL MOTION(#1,0,-2,#2,0,-2,#3,0,-2,#4,0,-2,#5,0,-2) :: GOTO 4350
4500 CALL MOTION(#10,0,0) :: CALL PATTERN(#10,120) :: CALL SOUND(300,-6,0) :: LEBEN=LEBEN-1
4510 IF LEBEN<=0 THEN 26000
4520 GOSUB 28000 :: FOR I=1 TO 300 :: NEXT I :: GOTO 4330
5000 CALL CLEAR :: CALL DELSPRITE(ALL) :: CALL MAGNIFY(3) :: ZEIT=9999 :: CALL CHAR(45,"00BFBF0FB7B70DBF")
5010 CALL GHOSTBUSTER :: CALL CHAR(88,"071B02030101000103070F0F1C1C7CF9FEFB4858FC1FFFFFFF7FBFDFFF3FFCF8")
5020 CALL CHAR(92,"000000000FFFFFF7FBFDFFFFE3C71E3E00000000E0F0F8F8FCFCFCFC9E0E3F7F")
5030 CALL CHAR(120,"00000000090910100103764C0C78F2C003060CD90C1870C0802020C000000000")
5040 CALL CHAR(124,"C060361931184E234102040201000000000000000000001088C06030301E0F13")
5050 CALL CHAR(132,"03030303030F0F0F0F07070D0D19191D800084081420E0F080808080808080C0")
5060 CALL CHAR(112,"53E373311F0703070B17664C0C191A388283861DF8E080E090C8C4626135B238")
5070 CALL CHAR(116,"010151E0331F0D01050B13262D2C0C1CC0C0C080E0F0D8CCF8F4623131B33038")
5080 PUNKTE=PUNKTE+1000 :: GOSUB 28000
5090 DISPLAY AT(1,1):"-           ++                        ******                    **      **                  **      **    "
5100 DISPLAY AT(5,1):"        **      **                  **      **               ****************            ****************    "
5110 DISPLAY AT(9,1):"   ********************      ************************    ************************    ****************  "
5120 DISPLAY AT(13,1):" ****************    ****************    **++++************++++**    **++++************++++**"
5130 DISPLAY AT(17,1):" +************+    +************+    +************+   zzzzzzzzzzzzzzzzzzzzzzzzzz"
5140 CALL COLOR(12,6,6,13,5,5) :: CALL HCHAR(21,1,128,96)
5150 CALL SPRITE(#1,88,2,133,30,#2,92,2,133,46,#3,88,2,133,180,#4,92,2,133,196,#7,112,15,32,115)
5160 GOSUB 28000 :: CALL SPRITE(#6,132,4,90,45,#5,128,4,90,180) :: CALL STREAM :: CALL PATTERN(#7,116) :: CALL STREAM2 :: CALL SOUND(-1000,-7,0)
5170 FOR I=1 TO 20 :: CALL SCREEN(11) :: CALL PATTERN(#7,112) :: PUNKTE=PUNKTE+500 :: CALL SCREEN(9) :: CALL PATTERN(#7,116)
5180 CALL SCREEN(2) :: GOSUB 28000 :: CALL SOUND(-500,-7,I) :: NEXT I
5181 FOR I=1 TO 3 :: FOR Z=1 TO 7 :: CALL SOUND(-100,Z*110,Z*2) :: NEXT Z :: NEXT I
5190 CALL CLEAR :: CALL DELSPRITE(ALL) :: CALL COLOR(12,15,15,13,16,16) :: ZEIT=200 :: SOLL=PUNKTE+10000 :: GOTO 120
5200 GOTO 5200
26000 CALL DELSPRITE(ALL) :: CALL CLEAR :: CALL MAGNIFY(4) :: CALL MARSHMALLOW :: LEBEN=0
26010 CALL CHAR(116,"F8F0B0F0B0FFFFBAFFBAFFFDFDFFFFFF0F07050705C7858785878587FFFFFFFF")
26020 CALL CHAR(112,"0000003F1F1B1F1B1F1B1F1B1BFFFFFF000000FCF868F868F868F86878FFFFFF")
26030 CALL CHAR(120,"00000008004051416161756D5DB3FDFF0000000000000401C000063DEBF5DFFF")
26040 CALL CHARSET :: FOR I=1 TO 8 :: CALL COLOR(I,16,1) :: NEXT I :: CALL HCHAR(21,1,128,96) :: GOSUB 28000
26050 CALL COLOR(13,5,5) :: CALL SPRITE(#1,116,6,140,100,#2,112,9,140,132,#3,124,16,70,100,#4,128,16,102,84)
26060 CALL SPRITE(#5,132,16,102,116,#6,136,16,134,84,#7,140,16,134,116) :: DISPLAY AT(5,8):"G A M E  O V E R"
26070 FOR I=1 TO 3 :: Y=55 :: X=100 :: CALL LOCATE(#3,Y,X,#4,Y+32,X-16,#5,Y+32,X+16,#6,Y+64,X-16,#7,Y+64,X+16) :: FOR Z=1 TO 20 :: NEXT Z
26080 Y=70 :: X=100 :: CALL LOCATE(#3,Y,X,#4,Y+32,X-16,#5,Y+32,X+16,#6,Y+64,X-16,#7,Y+64,X+16)
26090 CALL SOUND(-250,-6,0) :: CALL PATTERN(#1,120,#2,120) :: NEXT I
26100 DISPLAY AT(2,4):"G H O S T B U S T E R S"
26110 DATA 500,196,500,196,100,196,500,196,500,233,100,220,250,220,250,196,250,196,250,185,1000,196
26120 FOR I=1 TO 11 :: READ M,N :: CALL SOUND(M,N,0) :: NEXT I :: RESTORE
26130 CALL KEY(1,N,S) :: IF N=18 THEN CALL CLEAR :: CALL DELSPRITE(ALL) :: CALL MAGNIFY(3) :: GOTO 110 ELSE 26130
28000 DISPLAY AT(24,1)SIZE(10):"$";PUNKTE :: DISPLAY AT(24,14)SIZE(5):RPT$("!",LEBEN) :: DISPLAY AT(24,23)SIZE(6):ZEIT :: RETURN
29000 CALL CHAR(42,"FF040404FF202020") :: CALL COLOR(2,16,7)
29010 DISPLAY AT(1,1):"          ********************        ********************        ***bc****bc****bc***    "
29020 DISPLAY AT(5,1):"    ***de****de****de***        ********************        ********************        ********************   "
29030 DISPLAY AT(9,1):"    ***bc****bc****bc***        ***de****de****de***        ********************        ********************    "
29040 DISPLAY AT(12,1):"    ********************        ***bc****bc****bc***        ***de****de****de***        ********************    "
29050 DISPLAY AT(16,1):"    ********************        ***fg****fg****bc***        ***hi****hi****de***        ***jk****jk*********    "
29060 CALL HCHAR(20,1,120,96) :: RETURN
29070 CALL CHAR(42,"FF48FF24FF45FF52") :: CALL COLOR(2,5,8)
29080 DISPLAY AT(1,1):"               *******                **** *******                **** ***bc**                *bc*"
29090 DISPLAY AT(5,1):" ***de**                *de* *******                **** *******      **** ****************       *bc*"
29100 DISPLAY AT(9,1):" ****************       *de* ***bc***bc**bc**       **** ***de***de**de**       **** ****************       *bc*"
29110 DISPLAY AT(13,1):" ****************       *de* ****fg**bc**bc**       **** ****hi**de**de**       **** *******       *bc*"
29120 DISPLAY AT(17,1):" ****************       *de* ***bc***bc***fg*       **** ***de***de***hi*       **** *************jk*       ****"
29130 CALL HCHAR(21,1,120,64) :: RETURN
30000 SUB GHOSTBUSTER :: CALL CHAR(128,"010021102804070F0101010101010103C0C0C0C0C0F0F0F0F0E0E0B0B09898B8")
30010 CALL CHAR(132,"03030301070F0D0C070706060606060E80848810F0D070C0C0C0C0C0C0C0C0E0")
30020 CALL CHAR(136,"01010101070F0F070703031F1E100000C080C08080C0C2FFD8D0C06060303031")
30030 CALL CHAR(140,"03010301010343FF1B0B0306060C0C1C80808080E0F0F0E0E0C0C0F878080000")
30040 SUBEND
30050 SUB STREAM
30060 CALL POSITION(#5,Y,X) :: FOR I=18 TO 23 :: Y=Y-13 :: X=X-13 :: IF X<10 OR X>250 OR Y<10 THEN SUBEXIT
30070 CALL SPRITE(#I,124,14,Y,X) :: NEXT I :: SUBEND
30080 SUB GHOSTTRAP
30090 CALL POSITION(#2,Y,X) :: FOR I=24 TO 28 :: CALL SPRITE(#I,112,8,Y-16,X) :: NEXT I :: CALL MOTION(#25,-20,0,#26,-15,0,#27,-10,0)
30100 CALL MOTION(#28,-5,0) :: FOR I=1 TO 125 :: NEXT I :: CALL MOTION(#25,0,0,#26,0,0,#27,0,0,#28,0,0)
30110 SUBEND
30120 SUB MARSHMALLOW
30130 CALL CHAR(124,"000C1C3C7C776FBF39797F7E6F703C0F0000000000F0F8F89C9EFE7EF60E3CF0")
30140 CALL CHAR(128,"01071F3F7F7F7F7DF9FBFBFBFBAB7303FFDFDFDFEFE0FEFDFDFBFBFBFFFFFFFF")
30150 CALL CHAR(132,"FFFBFBFBF7077FBFBFDFEFF7FFFFFFFF80E0F8FCFEFEFEBE9FDFDFDFD5CEC0C0")
30160 CALL CHAR(136,"03030101000000000101010101010303FFFFFFFFFFFFFFFFFEFCFCF8F8F8FCFC")
30170 CALL CHAR(140,"FFFFFFFEF9FFFF1F0303070F0F010000C0C08080C0E0F0F8F8F8F0E0E0E06000")
30180 SUBEND
30200 SUB STREAM2
30210 CALL POSITION(#6,Y,X) :: FOR I=10 TO 15 :: Y=Y-13 :: X=X+13 :: IF Y<10 THEN SUBEXIT
30220 CALL SPRITE(#I,120,14,Y,X) :: NEXT I :: SUBEND
